extends Area2D

@onready var power = $"..".power
@onready var util = Util.new()
@onready var hurtPointer = load("res://UI/assets/HurtPointer1.png")
@onready var pointer = load("res://UI/assets/Pointer1.png")

func _ready():
	connect("body_entered", hitCallback)


## 子弹打击到对象
## @param body 被打击的对象
func hitCallback(body):
	# 减少敌人血量
	var state = util.findOne("$[State]", body)
	
	if state != null:
		state.subX(power)
		
		# 先隐藏子弹, 以及禁用子弹碰撞体
		# 此时子弹并没有被销毁
		# 这样做的原因是, 为了让用户击中光标正常变化
		#get_child(0).disabled = true
		self.visible = false
		
		# 用户光标变化为击中时的样式
		Input.set_custom_mouse_cursor(hurtPointer, Input.CURSOR_ARROW, Vector2(35, 35))
		# 等待0.1秒
		await get_tree().create_timer(0.1).timeout
		# 将光标变回初始光标
		Input.set_custom_mouse_cursor(pointer, Input.CURSOR_ARROW, Vector2(35, 35))
		# 销毁子弹, 如果在光标变化前销毁, 那么以下的代码就不会执行
		# 用户的光标就无法正常变化
		
	get_parent().queue_free()
